package framework.util.jdkExt;

import framework.util.mathCalculate._BigDecimalUtil;
import org.junit.Test;

import java.io.File;
import java.io.IOException;

public class _FileUtil {

    @Test
    public void test(){
        File file = new File("d:\\test_file.txt");
        _FileUtil.createFile(file);

        File dir = new File("d:\\test_dir");
        _FileUtil.createDir(dir);
    }

    /**
     * 给定一个文件路径，如果该文件存在，则不进行操作；否则创建文件
     */
    public static void createFile(File file) {
        if (file.exists()) {
            System.out.println("file exists : " + file.getAbsolutePath());
        } else {
            System.out.println("file not exists, create it ... : " + file.getAbsolutePath());
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * 给定一个文件夹路径，如果该文件夹存在，则不进行操作；否则创建文件夹
     */
    public static void createDir(File file) {
        if (file.exists()) {
            if (file.isDirectory()) {
                System.out.println("dir exists : " + file.getAbsolutePath());
            } else {
                System.out.println("the same name file exists, can not create dir");
            }
        } else {
            System.out.println("dir not exists, create it ... : " + file.getAbsolutePath());
            file.mkdirs();
        }
    }

    /**
     * 删除文件
     * @param fileAbsolutePath 待删除文件的绝对路径
     */
    public static void deleteFile(String fileAbsolutePath) {
        File file = new File(fileAbsolutePath);
        if (file.exists()){
            file.delete();
        }
    }

    /**
     * 将字节 转换成 kb
     * @param _byte 字节大小
     */
    public static Double byteTransformKb(Double _byte){
        _BigDecimalUtil bc = _BigDecimalUtil.getInstance();
        return bc.setValue(_byte).div(1024).setScale(2).getValue();
    }

    /**
     * 将字节 转换成 mb
     * @param _byte 字节大小
     */
    public static Double byteTransformMb(Double _byte){
        _BigDecimalUtil bc = _BigDecimalUtil.getInstance();
        return bc.setValue(_byte).div(1024).div(1024).setScale(2).getValue();
    }

}
